package com.zhanghe.study.study_scala.collection

import scala.collection.mutable

/**
 * Queue
 *
 * @author zh
 * @date 2021/5/8 11:29
 */
object TestQueue {
  def main(args: Array[String]): Unit = {
    // 创建队列
    val queue = new mutable.Queue[Int]

    // +=追加单个元素
    queue += 10
    // ++=追加集合
    queue ++= List(2,4,6,8)
    // Queue(10, 2, 4, 6, 8)
    println(queue)

    // 入队  出队
    // 入队  默认是加入到队尾
    queue.enqueue(20)
    // Queue(10, 2, 4, 6, 8, 20)
    println(queue)

    // 出队  默认从队首取出
    queue.dequeue()
    // Queue(2, 4, 6, 8, 20)
    println(queue)

    // 对Queue 本身不会有任何影响
    // 获取Queue的第一个元素  2
    println("队首元素："+queue.head)
    // 获取Queue的最后一个元素 20
    println("队尾元素："+queue.last)
    // 返回除了第一个元素之外的剩余元素，返回的还是Queue，所以tail可以级联使用 queue.tail.tail
    // Queue(4, 6, 8, 20)
    println("队尾："+queue.tail)

  }
}
